MapReduce雖然可以協助使用者處理大量的資料,
但是這個架構仍然存在一些問題,像是Job Tracker如果出錯的話,整個Job都會失敗。當發送的Job過多的時候,其實對於Jobtracker是一個相當重的負擔,總總因素的組成,於是下一代的Mapreduce架構就開始發展出來,稱為Yet Another Resource Negotiator(YARN)。
詳細可看Hortonworks對於YARN的介紹
http://hortonworks.com/blog/apache-hadoop-yarn-background-and-an-overview/
回顧MapReduce
首先來回顧一下Mapreduce 也就是MRv1的架構圖,
在這邊借用http://hortonworks.com/blog/apache-hadoop-yarn-background-and-an-overview/
的Mapreduce圖片進行回顧:
可以看到JobTracker只有一個,同時要進行資源管理以及Job的生命週期管理,TaskTacker要進行Jobtracker所指派的任務,和提供任務狀態給Jobtracker。
YARN的架構
同樣借用hortonwork的Yarn說明的架構圖,
來源為http://hortonworks.com/blog/apache-hadoop-yarn-background-and-an-overview/
原本的Jobtracker與Tasktracker已經不在了,現在變成ResourceManager(RM)與NodeManager,RM一般來說還是在NameNode上,NNodeManger則是在Datanode上。
jobtracker原本的兩個重要任務,資源管理的部分讓RM做,job的排程和監控則是由ApplicationMaster(AM)來進行,很像是之前的jobtracker有一部分的工作丟給Datanode做的感覺。
參考來源網址:
http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/
http://hortonworks.com/hadoop/yarn/
http://archive.cloudera.com/cdh4/cdh/4/hadoop/hadoop-yarn/hadoop-yarn-site/YARN.html